home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Software Vault: The Diamond Collection
/
The Diamond Collection (Software Vault)(Digital Impact).ISO
/
cdr27
/
setdatec.zip
/
SETDATE.TXT
< prev
next >
Wrap
Text File
|
1994-12-29
|
10KB
|
303 lines
SETDATE.TXT Version 1.C 1994.12.29
─────────── ──────────
sample data:
YR MTH DAY HR MIN SEC HTH DOW DL TODAY DFS
LY NY TDAY UDAY CM CD WOY NM
P4 3 8 P5 720 880 AD5 1 AD3 -30 =
Those variables that the user wants to have in his environment are found
before the first "=" sign at the start of this file. SETDATE.COM reads
this documentation file to determine which of the variables is required,
or uses one parameter.
The set of possible variables is:
YR MTH DAY HR MIN SEC HTH DOW D3 DL TODAY TMTH UMTH DFS DTE WOM NS
LY NY CENT TH UH TM UM TS US THU UHU 12H TDAY UDAY CM CD WOY NM MX
P0, P1..P9 AD0, AD1..AD9
The P variables (period) are P0, P1 to P9 and are used as period indicators.
If one of these is used, it must be followed by 2 numbers representing the
start and end of the period. if the numbers are both <= 24, the numbers are
taken as hours, otherwise they are taken as minutes. If your data is
P4 12 14, you will get an output of SET P4=Y if the program is run between
12:00 and 14:00 hrs, and SET P4=N otherwise. You can have a period extending
past midnight with numbers like 23 7.
Variables AD0, AD1..AD9 (Another Date) enable you to get the day, month and
year of a date which is a given number of days from the present. AD3 1
will give something similar to
SET AD3D=23
SET AD3M=08
SET AD3Y=94
representing tomorrow's date.
Previous dates are found by using negative numbers - the date 30 days
ago is given by using a negative value of 30 (AD8 -30).
Use of time and date environment variables:-
Having parts of the date and time in environment variables is handy when
making backups, or otherwise naming files or directories according to date.
The program SETDATE results in an output which may be redirected to make
a batch file, which then is CALLed to create the nominated environment
variables as described below. You can change the behaviour of a batch
file depending on the time of day by using the period variables.
SETDATE provides time variables down to hundredths of seconds and has a ready-
made combination called TODAY which may be convenient. The DOW (Day Of Week)
variable is available at 2 characters to enable a file name like 941205Tu.txt
to be made. A 3 character day and long version of day are available. Minutes
or seconds may be useful in doing intermediate backups of source code when
compiling via a batch file and can be used several times per day. Hundredths
may be useful in providing a random seed for games, display of screens or
other events.
The program stops and warns if the system year is not at least 1994.
Ways to use SETDATE are shown in examples below.
If any of the variable names appear at the start of this file before "="
and the program is run from the same directory as the documentation file
(or consider using the APPEND command), those variables will be written
out with the current data (so keep a standard list and just copy it to
the top and edit it there). Order and spacing do not matter, case does
(so you could include a lower case note in the list).
From version 1.C, a parameter may be used. If present, this will be used
and the file will not be read. This is useful in case only a few variables
are required. E.g.
SETDATE "TODAY P 8 17 AD5 -90
The trailing quote is not required (in DOS 5).
Just run the program to see what your selection will bring. When
satisfactory, redirect it to a batch file and call it. If most names
are used, the output looks something like this:
SET TODAY=940515
SET YR=94
SET TMTH=0
SET UMTH=5
SET MTH=05
SET MX=5
SET THU=6
SET UHU=0
SET HTH=60
SET TDAY=1
SET UDAY=5
SET NM=0803
SET WOM=3
SET DAY=15
SET HR=13
SET TH=1
SET UH=3
SET 12H=1
SET MIN=23
SET TM=2
SET UM=3
SET SEC=37
SET TS=3
SET US=7
SET LY=1993
SET NY=1995
SET CENT=19
SET DOW=Su
SET D3=Sun
SET DL=Sunday
SET CD=u
SET CM=y
SET DFS=135
SET WOY=20
SET DTE=230
SET NS=06774
but you will probably want to be selective about what to include.
---------------------------------------------------------------------------
SETTODAY may called from the AUTOEXEC.BAT file but in addition, may be called
from any other batch file or run separately.
This file, SETTODAY.BAT or something like it, is what is required to make
the variables (the directory \UTIL contains SETDATE.DOC and there is a
path to SETDATE.COM):
:settoday.bat
rem change directory to where the data file is
cd\util
setdate >c:\setdate.bat
call c:\setdate
---------------------------------------------------------------------------
EXAMPLES:
─────────
:File: ec.bat
rem Edit the file of data captured from the bulletin board, then rename.
ed caught.txt/e
ren caught.txt %yr%%mth%%day%%min%.txt
:File: nl.bat
:new letter
rem A 2 character command line parameter is allowed to enable the creation
rem of lots of letters every day. The $ in the directory name makes it sort
rem to the top of the tree.
ed c:\$geoff\%yr%%mth%%day%%1.txt
:dt.bat G.Cutter 93.11.08
:done today
:(for Australia - order the variables to suit your country)
dir /on |find "%day%-%mth%-%yr%"
@echo off
:test.bat G.Cutter 93.01.10
: Data was P8 15 19
rem "Display the file if in period 8"
if .%P8%==.Y goto showit
goto missit
:showit
type c:\config.sys
pause
:missit
@echo off
:setmthc.bat Geoff Cutter 94-07-13
REM Useful in making a ORACLE type date (13-JUL-94)
if %mth%==01 set MTHC=JAN
if %mth%==02 set MTHC=FEB
if %mth%==03 set MTHC=MAR
if %mth%==04 set MTHC=APR
if %mth%==05 set MTHC=MAY
if %mth%==06 set MTHC=JUN
if %mth%==07 set MTHC=JUL
if %mth%==08 set MTHC=AUG
if %mth%==09 set MTHC=SEP
if %mth%==10 set MTHC=OCT
if %mth%==11 set MTHC=NOV
if %mth%==12 set MTHC=DEC
To increase environment space, if required, try
shell=c:\command.com /p /e:877
in the CONFIG.SYS file and restart the computer.
LY=Last year - 2 characters
NY=Next year - 2 characters
CENT=Century - 2 characters
TH=Tens of hours - 1 character
UH=Units of hours - 1 character
TM=Tens of minutes - 1 character
UM=Units of minutes - 1 character
TS=Tens of seconds - 1 character
US=Units of seconds - 1 character
TDAY = Tens of days - 1 character
UDAY = Units of days - 1 character
TMTH = Tens of month - 1 character
UMTH = Units of month - 1 character
THU=Tens of hundredths of seconds - 1 character
UHU=Units of hundredths of seconds - 1 character
12H=Hours (12 Hour time) - 2 characters
NS=Seconds so far today - 5 characters
CM=Character for Month - 1 character see below
CD=Character for Day - 1 character see below
Monday writes "m" when CD is in the list
Tuesday writes "t"
Wednesday writes "w"
Thursday writes "h"
Friday writes "f"
Saturday writes "s"
Sunday writes "u"
January writes "j" when CM is in the list
February writes "f"
March writes "m"
April writes "a"
May writes "y"
June writes "u"
July writes "l"
August writes "g"
September writes "s"
October writes "o"
November writes "n"
December writes "d"
DFS - Days From Start of year - 3 characters
DTE - Days To End of year - 3 characters
WOM=Week Of Month - 1 digit (for such things as the 3rd
Thursday in the month.)
WOY=Week Of Year - 2 digits
NM=Number of Minutes so far today - 4 digits
P0-P9 - logical output (Y or N) depending on time of day for
up to 10 periods
MX=Month of year in hex. Useful if a single character is required
for a month so that file extentions can be made up from %MX%%DAY%
AD0-AD9 - with a following number, outputs a date representing the
date which is that number of days away from the present date (+ or -).
---------------------------------------------------------------------------
I have changed some code concerning Pn since version A as I can't get the
concatenate function to work properly. I now just use substitution instead,
here and for AD.
Some of the numbers are limited to 32k, eg the number of days from the
the system date that the program will work for. I might fix this next time.
In the mean time, 87 years will have to do.
In this version I have taken out the HALT when the system date is not
at least as much as the compile date. This is to enable the program to
generate a suitable date for an XT knowing the number of days from 1980-1-1.
A message appears as a remark in the output if appropriate so as not to
prevent batch file operation.
What I am working on (obviously unfinished) now is:
@echo off
:incnum.bat Geoff Cutter 94-09-17
REM D: is a RAM drive
d:
copy incnum.bat c:\batch
if not exist *.gcc goto explain
dir *.gcc |find /i "GCC" >count.$$$
del *.gcc
strings gcc= read count.$$$,1
strings gcc2= parse %gcc%,1,
set gcc=
strings gcc3= add %gcc2%,1
rem >%gcc3%.gcc
echo AD5 %gcc3% =>c:\temp\setdate.doc
type c:\util\setdate.doc >>c:\temp\setdate.doc
c:
cd\temp
setdate
goto end
:explain
echo This batch file takes a file name which is a number and
echo increments it and saves it to the new value. Useful if
echo you have an XT and wish to have an approx date (days
echo from 80-01-01). Knowing the days, use SETDATE to find
echo the date that number of days from there. If this is
echo done once every day, the date will be correct on the XT.
echo Use a variable such as AD5 in SETDATE to set up variables
echo for setting the date.
echo A file of the form NNNN.GCC should exist where NNNN is the number
echo to be incremented.
echo A file has been created for you for testing. Run %0 again.
rem >8.gcc
:end
---------------------------------------------------------------------------